ZkSync VS StarkNet
0. 総評
「Stark netの勝利」
比較するにあたり、一番重要なのは「普遍的なzk証明システムの構築」という大きな技術的課題を克服するためのアプローチ
なぜなら、これまでは用途に応じて異なるzk回路が実装されており、アプリケーションごとにzk Rollupがあり、EVM互換性がなかった。コレはEVM互換をサポートしているかどうかではなく、zkシステムのためのチューニングの話。
つまり、どのzk schemeをベースにしているか、言語と最適化されたVMの存在がキモ
その点で言えば、ベンチマークの指標と安全性の根拠からStark Netに軍配があると思う。
安全性の根拠はアップデートですぐにどうにかなるものではない。長期的に見ると量子耐性を付与する必要があるzkSyncはあまり綺麗なアーキテクチャには見えない。
どちらも長期的課題よりも、アプリケーションやユースケースを重要視した戦略で開発が進んでいるので、今はあまり表面化していないが後々めんどくさそう
EVM互換も短期的にみると魅力的だが、L2にコントラクトを置く時代までにはStarknetも実装されていると思うので大きなアピールポイントにはならないと思う
次に重要なのはDAについて。
ZKRsではTxのCalldataのみをバッチしてオンチェーンに投げる。
DAが担保されていれば、ユーザーは自分のトランザクションがどうなったかをEtherscanで見ることができるが、そうでなければ、ユーザーの取引の実行はブラックボックスになる。
もしユーザーが、L1上で直接取引を追跡する能力よりも、安い取引手数料を選ぶ傾向があるのなら、それはそれで構わない。
つまり、ユーザーに選択肢を提供することが望ましいとも言える。
ユーザがとる戦略は
1. L1上に取引データを書き込むが手数料は高くなる or
2. もっと手数料が安くなるが、取引データのDAを確保するためにL2上のエンティティを信頼する必要がある
この論点ではStark netが要件を満たしているが、中央集権的になっている。
DAを分散的にサポートし、同じプロトコルで確保できているのは長所。Cleteriaに外部委託するよりもマシ
Volitionではユーザーが各Txに基づいてデータ保存方法を選択できるのに対し、zkPorterではユーザーが各アカウントに基づいて取引決済方法を選択できる
zkPorterのオフチェーンDAシステムは、そのDAが中央集権的な「DAC」ではなく、zkSyncのネイティブトークンの「Guardian」によってセキュリティを提供することを動機としているため、より分散化されたシステム
違う組織が同じスキームを採用してzk-Rollupsを実装した場合、ソフトウェア的なチューニングによって多少の差が出るだろうが、根本的に異なるzk schemeを採用した場合、大きく性能の差が出る
私は、暗号理論、情報理論の発達、ムーアの法則に従ってzk schemeが進化し、強力なzk-Rollupsが生まれ、幾つものL2チェーンが乱立するようになると考えている。
今回の課題のテーマであるL2戦争とは単純に技術的な意味だけではなく、「開発者やユーザーがどのチェーンを選ぶのか」という意味も含むと私は解釈している。その場合、最もコストパフォーマンスの良いチェーンが選ばれる(インセンティブとしてのネイティブトークンを配布することなどはここでは考えない)のは明確であり、数年単位の時間が経過するにつれて最もパフォーマンスが良いチェーンが選択されていくだろう。つまり、この戦争は長期戦になる。
そう考えると、現段階でStark netがEVM互換を有していないということはzkSyncに劣っているとは思えない。
むしろ、ベンチマークで優勢であるだけでなく、暗号理論的にはSNARKの欠点であるTrusted Setupを必要としない上、量子耐性を持っていることは長期戦に有利な武器だろう。
1.ZkSync
既にzkSync2.0はEVM互換まで達成した模様
zk-Rollup以外の課題にも暗号学的に取り組むStarkwareとコミュニティドリブンに進めていくMatar Labと言う感じ。
1.1 Zinc
ネイティブのスマコン言語、SNARK Proof生成言語
チューリング完全
1.2 zkEVM
PLONKベース
EVM互換性があり
アルファ版
1.3 zkPorter
zkPorterは、zkRollupとShardingの考え方を組み合わせたハイブリッドなアプローチ
任意の数のShardをサポートすることができ、それぞれがスマートコントラクトによって定義された独自のDAポリシーを有している
そしてユーザによるシャードの選択は、個々のアカウントレベルで制御される
zkPorterは、stateの有効性とDataの有効性(DA)を分割して考える仕組みになっている
stateの有効性(ある状態から次の状態への遷移が常に有効であること)は、ゼロ知識証明によって一律に強制され、基盤となるL1のセキュリティ保証を継承しつつ、指数関数的なスケーラビリティを提供する
一方、データの可用性は個々のシャードに委ねられ、Shardは自由に異なる解決策を試すことができる
https://scrapbox.io/files/6294cda0a8826e001df36f03.png
図のように、zkRollupとは違うものとして見る必要があり、DA Layerとして認識した方が良いと思う
1.4 安全性
Trusted Setupに何かあれば死ぬ
量子耐性なし
2. StarkNet
2021年11月29日まではアプリ固有のzkシステムしか提供できていなかったが、OPのようにホワイトリスト制になった
2.1 Cairo
ネイティブのスマコン言語、STARK Proof生成言語
チューリング完全
2.2 Cairo VM
STARKeベース
solidity-> Cairoのトランスレイターはあるが、完全なEVM互換ではない
STARKの方が後発で、成熟していないことを考えるとEVM互換の実装が難しいことは納得できる
2.3 3つのDAモード
1. ZK-Rollupモード : データはオンチェーンに公開される
2. Validiumモード : データはオフチェーンに保存される
3. Volitionモード : ユーザーはデータをオンチェーンに置くかオフチェーンに置くかを選択することができる
オフチェーンDAを中央集権的な「data availability committee」(DAC)が提供し、安全性を保証しており、DACはいくつかの権威ある暗号エンティティで構成される
2.4 安全性
Trusted Setupの必要なし
暗号学的理論に欠陥が有れば死ぬ
量子耐性あり
疑問
長期的には、スマートコントラクトはL2(zk-Rollup)に展開される。そうすると、L1のコントラクトはほとんどL2に移植されることになると思う。少なくとも新しくL1デプロイするコントラクトの数は減り、それらはL2に奪われる。
すると、EVMの互換性は短期的にユーザーに利便性を与えるものであって、長期的には必要なくなる。また、そうなった場合、EVMの互換性はzk-Rollupチェーンのアピールポイントではなくなると思う。(既にそうなのかも)
参考文献